<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('includes/config.php');
include('includes/fonctions.php');
$messageErrMail = 'Page : inscription.php<br />';

/*
 * Gestion de l'inscription
 */

$pseudo = $email = $password = $_SESSION['form_pseudo'] = $_SESSION['pseudo_info'] = $_SESSION['mdp_info'] = $_SESSION['form_mdp'] = $_SESSION['mdp_verif_info'] = $_SESSION['form_mdp_verif'] = $_SESSION['mail_info'] = $_SESSION['form_mail'] = $_SESSION['captcha_info'] = '';
$envoieOk = false;

if (!empty($_POST['Envoyer'])) {
    $_SESSION['erreurs'] = 0;
    //Pseudo
    if (isset($_POST['pseudo'])) {
        $pseudo = htmlspecialchars(trim($_POST['pseudo']), ENT_QUOTES);
        $pseudo_result = checkpseudo($pseudo);
        if ($pseudo_result == 'tooshort') {
            $_SESSION['pseudo_info'] = '<div class="error">Votre pseudo est trop court, vous devez en choisir un plus long (minimum 3 caractères).</div><br/>';
            $_SESSION['form_pseudo'] = '';
            $_SESSION['erreurs']++;
        } else if ($pseudo_result == 'toolong') {
            $_SESSION['pseudo_info'] = '<div class="error">Votre pseudo est trop long, vous devez en choisir un plus court (maximum 32 caractères).</div><br/>';
            $_SESSION['form_pseudo'] = '';
            $_SESSION['erreurs']++;
        } else if ($pseudo_result == 'exists') {
            $_SESSION['pseudo_info'] = '<div class="error">Votre pseudo vient d\être pris, merci d\'en choisissir un autre.</div><br/>';
            $_SESSION['form_pseudo'] = '';
            $_SESSION['erreurs']++;
        } else if ($pseudo_result == 'ok') {
            $_SESSION['pseudo_info'] = '';
            $_SESSION['form_pseudo'] = $pseudo;
        } else if ($pseudo_result == 'empty') {
            $_SESSION['pseudo_info'] = '<div class="error">Vous n\'avez pas entré de pseudo.</div><br/>';
            $_SESSION['form_pseudo'] = '';
            $_SESSION['erreurs']++;
        }
    }

    //Mot de passe
    if (isset($_POST['mdp'])) {
        $mdp = htmlspecialchars(trim($_POST['mdp']), ENT_QUOTES);
        $mdp_result = checkmdp($mdp, '');
        if ($mdp_result == 'tooshort') {
            $_SESSION['mdp_info'] = '<div class="error">Le mot de passe est trop court, changez-en pour un plus long (minimum 3 caractères).</div><br/>';
            $_SESSION['form_mdp'] = '';
            $_SESSION['erreurs']++;
        } else if ($mdp_result == 'toolong') {
            $_SESSION['mdp_info'] = '<div class="error">Le mot de passe est trop long, changez-en pour un plus court. (maximum 40 caractères)</div><br/>';
            $_SESSION['form_mdp'] = '';
            $_SESSION['erreurs']++;
        } else if ($mdp_result == 'ok') {
            $_SESSION['mdp_info'] = '';
            $_SESSION['form_mdp'] = $mdp;
        } else if ($mdp_result == 'empty') {
            $_SESSION['mdp_info'] = '<div class="error">Merci de saisir un de mot de passe.</div><br/>';
            $_SESSION['form_mdp'] = '';
            $_SESSION['erreurs']++;
        }
    }

    //Mot de passe suite
    if (isset($_POST['mdp_verif'])) {
        $mdp_verif = htmlspecialchars(trim($_POST['mdp_verif']), ENT_QUOTES);
        $mdp_verif_result = checkmdpS($mdp_verif, $mdp);
        if ($mdp_verif_result == 'different') {
            $_SESSION['mdp_verif_info'] = '<div class="error">Le mot de passe de vérification diffère du mot de passe.</div><br/>';
            $_SESSION['form_mdp_verif'] = '';
            $_SESSION['erreurs']++;
            if (isset($_SESSION['form_mdp']))
                unset($_SESSION['form_mdp']);
        }

        else {
            if ($mdp_verif_result == 'ok') {
                $_SESSION['form_mdp_verif'] = $mdp_verif;
                $_SESSION['mdp_verif_info'] = '';
            } else {
                $_SESSION['mdp_verif_info'] = str_replace('passe', 'passe de vérification', $_SESSION['mdp_info']);
                $_SESSION['form_mdp_verif'] = '';
                $_SESSION['erreurs']++;
            }
        }
    }

    //mail
    if (isset($_POST['mail'])) {
        $mail = htmlspecialchars(trim($_POST['mail']), ENT_QUOTES);
        $mail_result = checkmail($mail);
        if ($mail_result == 'isnt') {
            $_SESSION['mail_info'] = '<div class="error">Le mail saisie n\'est pas valide.</div><br/>';
            $_SESSION['form_mail'] = '';
            $_SESSION['erreurs']++;
        } else if ($mail_result == 'exists') {
            $_SESSION['mail_info'] = '<div class="error">Le mail saisie est déjà pris, <a href="../contact.php">contactez-nous</a> si vous pensez à une erreur.</div><br/>';
            $_SESSION['form_mail'] = $mail;
            $_SESSION['erreurs']++;
        } else if ($mail_result == 'ok') {
            $_SESSION['mail_info'] = '';
            $_SESSION['form_mail'] = $mail;
        } else if ($mail_result == 'empty') {
            $_SESSION['mail_info'] = '<div class="error">Vous n\'avez pas entré de mail.</div><br/>';
            $_SESSION['form_mail'] = '';
            $_SESSION['erreurs']++;
        }
    }

    //captcha
    if (strtoupper($_POST['captcha']) == $_SESSION['captcha'] && isset($_POST['captcha']) && isset($_SESSION['captcha'])) {
        $_SESSION['captcha_info'] = '';
    } else {
        $_SESSION['captcha_info'] = '<div class="error">Vous n\'avez pas recopié correctement le contenu de l\'image.</div><br/>';
        $_SESSION['erreurs']++;
    }

    unset($_SESSION['captcha']);

    /*     * ***********Fin étude***************** */


//tout est ok on continue l'inscription
    if ($_SESSION['erreurs'] < 1) {
        /*
         * On insert en base le nouveau membre
         */

        //banni = 0: inscrit validé / 1 : Inscrit non validé / 2 : inscrit banni / 3 : incrit non validé timeout
        $connection = connexionBdd();
        $insert = $connection->prepare('INSERT INTO `membres` (`membre_id` ,
                                        `membre_pseudo` ,
                                        `membre_mdp` ,
                                        `membre_mail` ,
                                        `membre_inscription` ,
                                        `membre_derniere_visite` ,
                                        `membre_banni`)
                                        VALUES(NULL, :pseudo, :password, :email, NOW(), NOW(), 1)');

        // On rempli les paramètres
        $insert->bindValue(':pseudo', $pseudo);
        $insert->bindValue(':password', sha1($mdp));
        $insert->bindValue(':email', $mail);

        //on prépare la requête pour l'intertion du code de validation à valider par un lien
        $insertCode = $connection->prepare('INSERT INTO `validation` (`validation_id` ,
                                        `validation_membres` ,
                                        `validation_code`)
                                        VALUES (NULL, :idMembres, :code)');
        // On exécute
        try {
            $insert->execute();

            $id_membre = $connection->lastInsertId('membre_id');
            $code = getCodeValidation(12);
            $insertCode->bindValue(':idMembres', $id_membre);
            $insertCode->bindValue(':code', $code);
            $insertCode->execute();


            /*
             * Envoie d'un mail au client
             */
            //définition du sujet
            $sujetMail = '[Inscription] ' . $nomSite;

            //=====Déclaration des messages au format texte et au format HTML.
            $entete = "MIME-Version: 1.0\r\n";
            $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
            $entete .= "To: $mail";
            $entete .= "From:$mailSite";
            $entete .= "Reply-To: $mailSite \n"; // Adresse de retour le demandeur


            $message_html = '<html><head></head><body>';
            $message_html .= 'Bonjour ' . $pseudo . ',<br />';
            $message_html .= 'merci de votre inscription sur ' . $nomSite . '<br /><br />';

            $message_html .= 'Voici un rappel de vos codes d\'accès :<br />';
            $message_html .= '<strong>Pseudo</strong> : ' . $pseudo . '<br />';
            $message_html .= '<strong>Password</strong> : ' . $mdp . '<br /><br />';

            $message_html .= 'Cliquez sur le lien suivant pour valider votre compte et profiter de nos services.<br />';
            $message_html .= '<a href="' . $urlSite . '/validation-compte.php?id=' . $id_membre . '&code=' . $code . '">' . $urlSite . '/validation-compte.php?id=' . $id_membre . '&code=' . $code . '</a> : <br />';
            $message_html .= 'Toute l\'équipe de ' . $nomSite . ' espère vous voir très bientôt sur le site !<br /><br />';
            $message_html .= 'N\'oubliez pas de conserver cet email, il pourra vous être utile.<br /><br />';

            $message_html .= 'Pour toute autre précision, information, intervention, appréciation, suggestion, nous restons à votre écoute. N\'hésitez pas à nous contacter directement par le biais du site.<br />';
            $message_html .= 'Nous vous remercions de la confiance et de l\'intérêt que vous nous portez.<br /><br />';
            $message_html .='Cordialement,<br />L\'équipe ' . $nomSite;

            $message_html .= '</body></html>';

            //=====Envoi de l'e-mail.
            if (mail($mail, $sujetMail, $message_html, $entete)) {
                $envoieMailClient = true;
            } else {
                $envoieMailClient = false;
            }

            /*
             * Envoie d'un mail à l'admini pour signifier une nouvelle inscription
             */

            $sujetMail = '[Inscription] ' . $nomSite;

            //=====Déclaration des messages au format texte et au format HTML.
            $entete = "MIME-Version: 1.0\r\n";
            $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
            $entete .= "To: $mailAdmin";
            $entete .= "From:$mailSite";
            $entete .= "Reply-To: $mailSite \n"; // Adresse de retour le demandeur


            $message_html = '<html><head></head><body>';
            $message_html .= 'Bonjour ,<br />';
            $message_html .= 'Voici la dernière inscription<br /><br />';

            $message_html .= 'Voici un rappel de vos codes d\'accès :<br />';
            $message_html .= '<strong>Pseudo</strong> : ' . $pseudo . '<br />';
            $message_html .= '<strong>Password</strong> : ' . $mdp . '<br /><br />';

            $message_html .= '</body></html>';

            //=====Envoi de l'e-mail.
            if (!mail($mailAdmin, $sujetMail, $message_html, $entete)) {
                $envoieMailAdmin = true;
            } else {
                $envoieMailAdmin = false;
            }
        } catch (Exception $e) {
            $_SESSION['bdd_info'] = '<div class="error">Une erreur technique est venue perturbée votre inscription. Notre équipe technique vient d\en être informée. Merci de renouveler votre opération ultérieurement.</div>';
            $_SESSION['erreurs']++;
            $messageErrMail .=$e->getMessage();
            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);           
        }

        $insert->closeCursor();
        /*
         * Envoie d'un mail à l'utilsateur pour qu'il ai une copie du password
         */
    }
}

/*
 * Fin Gestion Inscription
 */



/* * ******Entête et titre de page******** */
$titre = 'Inscription 1/2';
include('includes/haut.php'); //contient le doctype, et head.
/* * ********Fin entête et titre********** */
?>
<script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
        <script src="js/languages/jquery.validationEngine-fr.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>
        <script>
            jQuery(document).ready(function() {
                jQuery("#formID").validationEngine();

                $("#formID").bind("jqv.field.result", function(event, field, errorFound, prompText) {
                    console.log(errorFound)
                })
            });
        </script>
<!--Colonne gauche-->
<div id="colonne_gauche">
    <?php
    include('includes/colg.php');
    ?>
</div>
<!--Contenu-->
<div id="contenu">
    <div id="map">
        <a href="index.php">Accueil</a> / <a href="inscription.php">Inscription 1/2</a>
    </div>

    <h1>Formulaire d'inscription</h1>
    <p>Bienvenue sur la page d'inscription de mon site !<br/>
        Merci de remplir ces champs pour continuer.</p>

    <?php
    if ((!isset($_SESSION['erreurs'])) || ( $_SESSION['erreurs'] > 0)) {
        ?>
        <form id="formID" class="formular" method="post" action="inscription.php" style="width:600px">
            <fieldset>
                <legend>Identifiants</legend>

                <label for="pseudo" class="float">Pseudo :</label>
                <?php
                if (isset($_SESSION['pseudo_info']))
                    echo $_SESSION['pseudo_info'];
                ?>
                <input value="<?php echo $_SESSION['form_pseudo']; ?>" class="validate[required,custom[onlyLetterNumber],minSize[3],maxSize[40],ajax[ajaxUserCallPhp]] text-input" type="text" name="pseudo" id="pseudo"/>

                <label for="mdp" class="float">Mot de passe :</label>
                <?php
                if (isset($_SESSION['mdp_info']))
                    echo $_SESSION['mdp_info'];
                ?>
                <input value="<?php echo $_SESSION['form_mdp']; ?>" class="validate[required,minSize[3],maxSize[40],ajax[ajaxPasswordCallPhp]] text-input" type="password" name="mdp" id="mdp" />

                <label for="mdp_verif" class="float">Mot de passe (vérification) :</label>
                <?php
                if (isset($_SESSION['mdp_verif_info']))
                    echo $_SESSION['mdp_verif_info'];
                ?>
                <input value="<?php echo $_SESSION['form_mdp_verif']; ?>" class="validate[required,equals[mdp]] text-input" type="password" name="mdp_verif" id="mdp_verif" />

                <label for="mail" class="float">Mail :</label>
                <?php
                if (isset($_SESSION['mail_info']))
                    echo $_SESSION['mail_info'];
                ?>
                <input value="<?php echo $_SESSION['form_mail']; ?>" class="validate[required,custom[email],ajax[ajaxMailCallPhp]] text-input" type="text" name="mail" id="mail" />

                <label for="captcha" class="float">Entrez les 7 caractères (majuscules ou chiffres) contenus dans l'image :</label>
                <input type="text" name="captcha" id="captcha"><br/>
                <?php
                if (isset($_SESSION['captcha_info']))
                    echo $_SESSION['captcha_info'];
                ?>
                <img src="<?php echo ROOTPATH; ?>/captcha/captcha.php" id="img_captcha" /><!-- (JavaScript) Recharge l'image car elle n'existe pas dans le cache du navigateur, grâce à l'id généré  -->
                <img src="<?php echo ROOTPATH; ?>/captcha/recharge.png" width="32px" height="32px" alt="Recharger l'image" title="Recharger l'image" style="cursor:pointer;position:relative;top:-7px;" onclick="document.images.img_captcha.src = '<?php echo ROOTPATH; ?>/captcha/captcha.php?id=' + Math.round(Math.random(0) * 1000)" />
            </fieldset>
            <div class="center"><input type="submit" value="Inscription" name="Envoyer" /></div>
        </form>
        <?php
    } else {
        echo '<p>Afin de valider votre inscription, un mail contenant un lien d\'activation vient de vous être envoyé.</p>
            <p>Merci de cliquer sur le lien de ce mail, pour finaliser votre insciption et profiter pleinement des ressources du site.</p>
            <p>L\'équipe ' . $nomSite . '</p>';
    }
    ?>



</div>
<?php
//echo '<pre>';
//print_r(get_defined_vars());
//echo '</pre>';
include('includes/bas.php');
?>